iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
DevOps

探索亞馬遜雨林30天系列 第 8

Day 8: 管理S3物件生命週期(下)

  • 分享至 

  • xImage
  •  

如果打算自動捨棄當前版本的object,可以選擇Expire current versions of objects這個action,並設定要在object上傳後的幾天處理object,時間一到aws會排程,並根據bucket當前Bucket Versioning的狀態決定怎麼處理目前版本的object:

  • Non-versioned bucket - bucket如果從未開啟versioning,當aws認定當前版本的object可以expire時,會直接刪除object。
  • Versioning-enabled bucket - bucket如果開啟versioning,aws把當前版本expire掉,並添加delete marker作為當前版本,這個時候使用api查詢會找不到該object,在console上如果沒有打開Show versions 也看不到delete marker。
  • Versioning-suspended bucket - bucket如果曾經開啟versioning,但已經關閉,Bucket Versioning會是Suspended。這時候當aws要把object expire的時候,一樣會添加delete marker,但是跟enabled的時候比較不一樣的地方是,enabled的delete marker會有version id,但是suspended的version id會是null。

需要特別注意的是,當object已經expire,當前版本是delete marker時,如果發送delete request請求刪除,只會刪掉delete marker,而過期的版本並不會刪除,除非是指定version id才能透過發送delete request刪除,雖然console或api都沒有看到任何object,但還是會殘留過期檔案佔空間,這部分仍需要付費。


如果要刪除不用的object,可以選擇Permanently delete noncurrent versions of objects這個action,並設定多少天之後讓當前版本的object過期,指定要留下多少版本的object,其餘的aws會執行刪除,刪除的過程並不會額外收取費用。

參考資料:
Deleting objects from versioning-suspended buckets


上一篇
Day 7: 管理S3物件生命週期(上)
下一篇
Day 9: 如何透過AWS KMS加解密資料
系列文
探索亞馬遜雨林30天16
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言